package com.itheima.d1_stream;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

//目标：了解Stream流操作的优势
public class Demo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        list.add("张强");
        list.add("张三丰");
        //需求：把集合中所有以“张”开头，且是3个字的元素存储到一个新的集合。

        //oldMethod(list);

        List<String> newList = streamMethod(list);
        System.out.println(newList);
    }

    public static void oldMethod(List<String> list) {
        //1.创建一个新的集合，用来存储要求的数据
        ArrayList<String> newList = new ArrayList<>();

        //2.遍历旧的集合，拿出每一个数据
        for (String name : list) {
            //3.判断字符串name是否是以"张"开头，并且字符串长度是3
            if (name.startsWith("张") && name.length() == 3) {
                newList.add(name);
            }
        }

        System.out.println(newList);
    }

    public static List<String> streamMethod(List<String> list) {
        return list.stream()
                .filter(new Predicate<String>() {
                    @Override
                    public boolean test(String s) {
                        return s.startsWith("张") && s.length() == 3;

                    }

                })
                .collect(Collectors.toList());
    }
}
